﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestPrint.aspx.cs" Inherits="PCC.Framework.JWeb.TestPrint" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
     <title>企业档案目录</title>
     <link href="../CSS/css-main.css" type="text/css" rel="stylesheet" media="all" />
     <script type="text/javascript">

         /*
         * 打印参数说明	

         &w	网页标题
         &u	网页地址 (URL)
         &d	短日期格式（由“控制面板”中的“区域设置”指定）
         &D	长日期格式（由“控制面板”中的“区域设置”指定）
         &t	由“控制面板”中的“区域设置”指定的时间格式
         &T	24 小时时间格式
         &p	当前页码
         &P	总页数     
         &b	文本右对齐（请把要右对齐的文字放在“&b”之后）
         &b&b	文字居中（请把要居中的文字放在“&b”和“&b” 之间）
         &&	单个 & 号 (&)

         */

         //注册表的网页打印路径
         var hkey_root = "HKEY_CURRENT_USER";
         var hkey_path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
         var hkey_key;

         //打印指定区域
         function DoPrint() {
             //直接调用WebBrowser的打印，要打印预览的话是ExecWB(7,1)
             document.all.WebBrowser.ExecWB(6, 1);
         }

         //设置纸张方向
         function SetupLandscape() {
             try {
                 var wsShell = new ActiveXObject("WScript.Shell");
                 //打印页面的Menubar必须可见，此操作类似按键盘上的Alt+F+U也就是 调出页面设置对话框
                 wsShell.sendKeys('%fu');
                 //此操作类似按键盘上的Alt+A也就是 设置横向打印
                 wsShell.sendKeys('%a');
                 //此操作类似按键盘上的回车 页面设置对话框的默认焦点在 确定上 所以直接确定
                 wsShell.sendKeys('{ENTER}');
             }
             catch (e) { }
         }

         //设置默认的页眉页脚
         function SetupPage() {
             try {
                 var RegWsh = new ActiveXObject("WScript.Shell");
                 hkey_key = "header"
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "&w&b页码，&p/&P")
                 hkey_key = "footer"
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "&b&d") //去掉了&u 因为我不想显示当前打印页的网址
                 hkey_key = "margin_bottom";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.39"); //0.39相当于把页面设置里面的边距设置为10
                 hkey_key = "margin_left";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.39");
                 hkey_key = "margin_right";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.39");
                 hkey_key = "margin_top";
                 RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.39");
             }
             catch (e) { }
         }

         function print() {
             SetupLandscape();
             SetupPage();
             DoPrint();
         }

	 </script>
 
 </head>
 <body>
	 <form id="form1" runat="server" enctype="multipart/form-data">
     <input type="button" onclick="print()" value="打印" />
		 <OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"　VIEWASTEXT ></OBJECT >
		 <table width="100%">
			 <tr><td>要打印的内容</td></tr>
		 </table>
	 </form>
 </body>
 </html>